﻿using System;

namespace Configurator
{
    /// <summary>
    /// Пара из подэлемента и его знака.
    /// </summary>
    public class Pair
    {
        /// <summary>
        /// Значение состоящее из подэлемента.
        /// </summary>
        private SubItem val;

        /// <summary>
        /// Знак подэлемента.
        /// </summary>
        private Signal sign;

        /// <summary>
        /// Инициализирует пару.
        /// </summary>
        /// <param name="subItem">Подэлемент.</param>
        /// <param name="sign">Знак подэлемента.</param>
        public Pair(SubItem subItem, Signal sign)
        {
            if (subItem == null)
            {
                throw new ArgumentException("Подэлемент = null.");
            }

            this.val = subItem;
            this.sign = sign;
        }

        /// <summary>
        /// Возвращает или задает значение пары.
        /// </summary>
        public SubItem Val
        {
            get { return this.val; }
            set { this.val = value; }
        }

        /// <summary>
        /// Возвращает или задает знак значения.
        /// </summary>
        public Signal Sign
        {
            get { return this.sign; }
            set { this.sign = value; }
        }

        /// <summary>
        /// Возвращает текстовое представление пары.
        /// </summary>
        /// <returns>Текстовое представление пары.</returns>
        public override string ToString()
        {
            return this.val.Name + ((Signal.minus == this.sign) ? "-" : "+");
        }
    }
}
